A r t i c l e s
Navigation

Note: This site is
a bit older, personal views
may have changed.

M a i n P a g e

D i r e c t o r y

Too Lazy To Tie His Shoes


Lessons and Analogies

As a child, way before I was a programmer, I took apart each toy I had, and then moved on to engines when I was about 8-16 years old. I waited for cars to become broken in order to learn about them. I started programming seriously at about age 18-20, but I started really diddling with cars at about age 8-18. When someone in the family complained that the car had broken down, they were pissed off, while I was happy and excited. Just hearing about a broken car put butterflies in my stomach (almost like when someone is going to win a race or get the best mark in school - a nervous but good feeling arises in the stomach).

The only problem was, it was too hard to go out to the garage, in shoes. Shoes had laces. Velcro was lame. I had to get cowboy boots, or sometimes I would slip on sandals. Cowboy boots were easy to slip into (if the right brand was purchased, not too tight of a fit). Cowboy boots offered the added benefit of having more protection (i.e. against burns, or things being dropped near the foot or leg). Sure, cowboy boots were kind of country-ish, but hey, even the Led Zeppelin band wore them and they weren't a country band. Cowboy boots are horrible to walk in, and some girls hate them, but they were good garage boots - they were convenient and didn't require too much effort to get into, compared to say laced army boots. Sandals were even easier than cowboy boats, but sandals didn't have steel toes and they didn't keep feet warm in the winter (I replaced head gaskets when it was 29 below Celsius, with no furnace on, and sometimes no garage even.. although I have also worked in heated garages too).

Once I got out to the garage, I enjoyed especially ripping the guts out of starter motors, doing head gasket replacements, taking out spark plugs just for the sake of it or to smell the fuel mixture, repairing electrical-mechanical parts, and even fixing interior stuff like seatbelt springs that had worn out. Since I also had lots of experience with electronics and motors from ripping apart all my remote control toys when I was 6 (one which I supercharged with a 9V battery successfully, even though it was meant only to take double AA batteries) I also enjoyed even fixing or taking apart stupid boring things like electric window switches or signal wands.

Lazy or Smart?

How could I be so lazy, to not want to tie shoes... if I could take apart and put back together two Porsche engines and several other German/Swedish/Japanese cars? Why was it so hard to tie laces?

The answer is that clever people wish not to waste time. Although shoe laces only take a few seconds to tie, human instinct tells us that tying shoe laces is automatically a waste of time, and taking apart engines is not. The other answer is that clever people do not want to wreck up the heel of the shoe (slipping into it eventually wears it out) while a sandal or cowboy boot does not wear out since it is made to be slipped into. There are several other factors, such as loss of concentration.

When I have an engine part and I am bringing it in to the sink to wash or analyze, I need full concentration, which means I cannot stop and drop the part on the step, undo laces, take off the shoes, put shoes away, take off coat, etc. I have to run inside while concentration is up and while I'm really into the whole repair process. The sandals and cowboy boots add that extra icing on the cake that makes my concentration stay up - even if from a theoretical perspective tying shoe laces can't possibly take too much time.

The other issue with laces and shoes is that whenever the shoes are taken off there is this part at the back of the shoe where you hold with your other foot to sort of throw off the shoe, and this part also wears out eventually. Instead of kicking off the shoe using the other foot, one could just bend down to take off the fucking shoe... but that isn't the point. Real men don't have time for such things. Again, if one bends down to pull off the shoe with his hand, he loses concentration and forgets what he came inside to analyze.

In fact most of the time, coming inside from a garage also meant that I was ready to piss my pants for holding it in so long in order to get real work done, since real hackers don't have time for bathroom breaks (I also remember near shitting my pants while building my first steering wheel for my computer game at the age of about ten, because I barely had time to take a shit with the amount of work the wheel required).

And the same goes for programming - one of the reasons I absolutely hate typing SHIFT keys often is the long term effects. It's not that I'm lazy. In prose text, shift keys aren't so bad since they only occur after every period (capitalizing the first letter of the sentance) and in other places such as acronyms. But in programming, SHIFT keys are a pain in the but. They are the shoe laces of programming.

Some idiot got the whole "shoe laces of programming" all wrong one day and invented Perl (and C, and many other languages). Perl requires tons of shift keys (and C too). The inventor of Perl thought that the shoe laces of programming was typing long reserved words out. That is part of the problem - but long reserved words aren't the only problem. Shift keys, in addition to long reserved words, are the problems. Note that there are problems, not problem. Perl tried to solve the long reserved word issues by replacing everything with terse symbols. The only problem is, symbols require tons of shift keys - and this leads to sore pinky fingers and pissed off programmers.

The same problem exists in HTML. HTML is a pain in the ass since the shift keys annoy the living fuck out of any hacker worth his salt. Idiots will argue that the amount of shift keys we need to type doesn't affect us. That's the same argument as using LoopIndex instead of i. Unfortunately its bull shit. using LoopIndex instead of i is stupid, since i is well known as a loop iterator, and there is no point in using LoopIndex when all programmers know to use i.. just like all mathematicians know to use the plus sign + instead of writing out the word ADDITION or PLUS each time.

Back on topic - the same shift key problem exists in editors like Emacs, where some people have had to have surgery or stop programming because emacs requires so many ctrl keys. Richard Stallman himself has serious problems in his fingers because of using emacs (and possibly because of using Lisp, although surely he reconfigured his keyboard so that brackets require no shift key? If not, obviously this just proves my point.. that programmers are too lazy to even remap their keyboards because programmers have more important things to do, and remapping their keyboards means a non standard keyboard layout which won't work on the next computer, and remapping the keyboard also means that booting up a second computer in the room won't have the remapper progam installed by default, etc.).

You see - my experience as a child having difficulties tying shoe laces has taught me a lot. Critically analyzing why it was that I felt shoe laces were a waste of time really helped. Most people would immediately just pass it off as "oh, you are lazy, if you can't even tie shoe laces."


The same happened with Ruby.. Ruby is a lot like a cleaner version of Perl in some senses, with lots of semi colons and less than and greater than signs, and regexes. But see, terseness wasn't the issue we should have been trying to solve.

People who don't have high IQ's pass programmers and mechanical tinkerers off as lazy people. Anyone who wants to make a language terse must be lazy. Anyone who can't tie his shoes is lazy.

The reality is, us hackers aren't lazy - we are just efficient and clever. The inventor of perl tried to be efficient and clever by chopping down the language into shortform symbols, and so did the inventor of Ruby. But unfortunately the inventors didn't critically analyze shoe laces and the real problem enough.

The inventors of Ruby and Perl stopped at this point: "it must be easier to write language that is terse". That, is unfortunately only half of the problem. It is easier to write a language that is terse... but it is even easier to write in a language that is somewhat terse, without many shift keys.

1. I would rather type out the word

 hello
2. than type out the key combination
%#^
Why? Because the second one with lots of symbols is a pain in the fucking ass, just like it was an extreme pain in the ass to tie my shoe laces in the middle of concentration when I had the guts of an engine in my hand with a brilliant fix-it idea rolling through my brain - and if I stop for a second to do some tedious pain in the ass task such as untie my shoes, take my jacket off, whipe my ass, hang up my coat, tidy up the landing, do the laundry - then I have already lost 15 minutes worth of concentration time - and concentration time is split second based - not minute based. With programming, my pinky is sore when it doesn't have to be, which is almost as bad as tieing shoe laces - it isn't quite as bad, because at least even though my pinky is in pain, I can still keep my concentration - but the pinky soreness still affects my concentration none the less, and I still get pissed off that I have to reach up there and stretch for those symbols when really I don't HAVE to (if some other language offered me something better).

So that brings me to BEGIN and END. Yes, BEGIN and END are bulky. But so is the squiggly curly brace. The squiggly curly brace is bulky because it hurts my pinky. The FOR loop in C is bulky because I have to type out { and } and ++ and ( and ) which is a huge pain in the ass. So what is the solution? When there is a need, there is an invention. You know what it is. I've mentioned it before. It's not perfect, but it is better than Pascal syntax and almost just as clean.. and it doesn't have many shift keys in it. I'm not lazy, I am just afraid of ending up like Stallman in the hospital with finger disease. This isn't an exaggeration.. many emacs and lisp programmers of the time have had serious finger issues.

Supposedly the inventor of Perl (Larry Wall) wears eye glasses to protect his eyes from projectiles - maybe we should consider also our fingers. We as programmers can protect our eyes by wearing glasses (I wear safety glasses while working on cars) and we can also protect our fingers and our sanity. It is not just our fingers I am worried about with today's C/Perl/Pascal languages - it is the sanity I'm worried about. Programming drives me insane sometimes - not because programming is difficult, because I love difficult problems. Programming drives me insane because my fingers are sore as fuck when they don't have to be - and programming is stressful when it doesn't have to be.

When I whip open my text editor I want to be in an enjoyable environment using an enjoyable language - just like my chair needs to be nice and comfy. Are programmers wimps if they don't sit on hard wood chairs? Aren't wood chairs just a minor annoyance? Not really - they are a huge annoyance. Are symbols, shift keys, and big reserved words just a minor annoyance? Not always - sometimes they are enough to cause hospitalization.

One could argue all day long that the amount of reserved words and symbols we type doesn't affect our programming code - but I can argue back that it does affect our programming attitude and our human instinct to be efficient beings. Just because tying shoe laces only takes a few seconds, doesn't mean that tying shoe laces is right. Concentration, slight pain, and maintenance are big factors in mechanical tinkering and programming. Mechanical hackers don't bother retying their shoes each time they bring in an engine part inside - and for a good reason. It isn't because we are lazy. It is because we are sick and tired of SHIFT keys, from birth.

One of Qompute's goals will be to reduce the pains, strains, and concentration losses that are prevalent in today's languages. Some of the pains are physical, such as shift keys, and some of the pains are mental, such as not being able to compile existing source bases with new languages (i.e. python can't compile C, and Digital Mars D can't compile C++ or C directly, and php can't compile C or even be linked to C, etc.). Well that's all I'm going to say for now, because Qompute is vaporware until I release it off my hard drive some week or month.

About
This site is about programming and other things.
_ _ _